package org.vison.framework.doc.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * wonfu-doc模块配置属性类
 * 用于配置REST和SOA接口文档的生成参数
 */
@Data
@Component
@ConfigurationProperties(prefix = "wonfu.doc")
public class DocProperties {
    
    /**
     * 是否启用接口文档生成
     * 启用后默认同时开启REST和SOA接口文档
     */
    private boolean enabled = true;
    
    /**
     * 文档访问基础路径
     * REST和SOA文档共用此路径
     */
    private String basePath = "/docs";
    
    /**
     * REST接口文档配置
     */
    private RestDocProperties rest = new RestDocProperties();
    
    /**
     * SOA接口文档配置
     */
    private SoaDocProperties soa = new SoaDocProperties();
    
    /**
     * REST接口文档配置内部类
     */
    @Data
    public static class RestDocProperties {
        /**
         * 扫描的包路径列表
         */
        private List<String> scanPackages;
    }
    
    /**
     * SOA接口文档配置内部类
     */
    @Data
    public static class SoaDocProperties {
        /**
         * 扫描的包路径列表
         */
        private List<String> scanPackages;
    }
}